﻿using ProyectoDeTesis.Controladores;
using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace ProyectoDeTesis.Vistas
{
    public partial class PendienteAprobacion : Form
    {
        private int pantalla_id = 16;
        private int vuelo_id = 0;
        private VueloController vueloController = new VueloController();
        private List<ProyectoDeTesis.Vuelo> listaVuelo = new List<ProyectoDeTesis.Vuelo>();
        public PendienteAprobacion()
        {
            InitializeComponent();
            rdtpFecha.Value = DateTime.Now.Date;
        }

        private void btnLimpiar_Click(object sender, System.EventArgs e)
        {
            rdtpFecha.Value = DateTime.Now.Date;
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {        
            buscarVuelosPendientes();
        }

        private void buscarVuelosPendientes()
        {
            DateTime fecha = rdtpFecha.Value;

            listaVuelo = vueloController.buscarVuelosPendientes(fecha);

            dgvResultados.DataSource = listaVuelo;
            formatearTabla(dgvResultados);
        }


        public void formatearTabla(DataGridView rgvVuelos)
        {
            rgvVuelos.Columns[0].Visible = false;
            rgvVuelos.Columns[1].HeaderText = "Numero de vuelo";
            rgvVuelos.Columns[2].HeaderText = "Tipo de Avión";
            rgvVuelos.Columns[3].HeaderText = "Tipo de vuelo";
            rgvVuelos.Columns[4].Visible = false;
            rgvVuelos.Columns[5].HeaderText = "Destino";
            rgvVuelos.Columns[6].HeaderText = "Nombre de Aeropuerto";
            rgvVuelos.Columns[7].HeaderText = "Fecha de Salida";
            rgvVuelos.Columns[8].HeaderText = "Hora de Salida";
            rgvVuelos.Columns[9].HeaderText = "Fecha de LLegada";
            rgvVuelos.Columns[10].HeaderText = "Hora de Llegada";
            rgvVuelos.Columns[11].Visible = false;
            rgvVuelos.Columns[12].Visible = false;
            rgvVuelos.Columns[13].Visible = false;
            rgvVuelos.Columns[14].Visible = false;
            rgvVuelos.Columns[15].Visible = false;
            rgvVuelos.Columns[16].Visible = false;
            rgvVuelos.Columns[17].Visible = false;
            rgvVuelos.Columns[1].Width = 120;
            rgvVuelos.Columns[2].Width = 120;
            rgvVuelos.Columns[3].Width = 120;
            rgvVuelos.Columns[5].Width = 200;
            rgvVuelos.Columns[6].Width = 200;
            rgvVuelos.Columns[7].Width = 140;
            rgvVuelos.Columns[8].Width = 140;
            rgvVuelos.Columns[9].Width = 140;
            rgvVuelos.Columns[10].Width = 140;
        }
        private void tslAprobar_Click(object sender, EventArgs e)
        {
            if (this.vuelo_id > 0)
            {
                vueloController.aprobarVuelo(vuelo_id);
                FormAceptar form = new FormAceptar("Se aprobo el vuelo correctamente.");
                form.ShowDialog(this);
                buscarVuelosPendientes();
            }
            else
            {
                FormError form = new FormError("Debe seleccionar una fila primero.");
                form.ShowDialog(this);
            }
        }

        private void btnAprobarTodos_Click(object sender, EventArgs e)
        {
            if (listaVuelo.Count > 0)
            {
                List<int> listaVueloIds = new List<int>();
                foreach (ProyectoDeTesis.Vuelo v in listaVuelo)
                {
                    listaVueloIds.Add(v.id);
                }

                vueloController.aprobarVuelos(listaVueloIds);
                FormAceptar form = new FormAceptar("Se aprobaron los vuelos correctamente.");
                form.ShowDialog(this);
                buscarVuelosPendientes();
            }
            else
            {
                FormError form = new FormError("Debe hacer una búsqueda primero.");
                form.ShowDialog(this);
            }
        }

        private void dgvResultados_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex > -1)
            {
                DataGridViewRow row = dgvResultados.Rows[e.RowIndex];

                this.vuelo_id = Convert.ToInt32(row.Cells[0].Value);
            }
        }
    }
}
